<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Produk_model extends CI_Model
{

	function __construct()
	{
		parent::__construct();
		
	}
	
	/// produk
	function getProduk($query=FALSE,$id_prod=FALSE,$id_kat=FALSE,$id_brand=FALSE,$limit=FALSE,$offset=FALSE)
	{
		if($limit):
			$this->db->limit($limit,$offset);
		endif;
		if($query=='prod_ready'):
			$this->db->select('tb_produk.produk_id,tb_produk.prod_brand_id,tb_produk.nama_produk,tb_produk.deskripsi,tb_produk.persen_diskon,tb_produk.harga,tb_produk.prod_kat_id,tb_produk.harga,tb_image_produk.produk_img_url,
			tb_image_produk.produk_img_thumb,tb_image_produk.produk_img_url_small');
                        $this->db->join('tb_image_produk','tb_image_produk.produk_id = tb_produk.produk_id');
			$this->db->where('tersedia','Ya');
                        $this->db->where('tb_image_produk.look','1');
			$this->db->where('tb_produk.produk_id',$id_prod);
			$query = $this->db->get('tb_produk');
			if($query->num_rows() == 0){
				redirect('home');
			}
			else{
			return $query->row();
			}
		elseif($query=='all'):
			$this->db->order_by('produk_id','desc');
			return $this->db->get('tb_produk')->result_array();
		elseif($query=='AllByCat'):
			$this->db->where('prod_kat_id',$id_kat);
			$this->db->where('prod_brand_id',$id_brand);
			$this->db->where('tersedia','Ya');
            $this->db->where('tb_image_produk.look','1');
			$this->db->join('tb_kat_produk','tb_kat_produk.kategori_id = tb_produk.prod_kat_id');
            $this->db->join('tb_image_produk','tb_image_produk.produk_id = tb_produk.produk_id');
			$this->db->order_by('tb_produk.produk_id','ASC');
			$this->db->select('tb_produk.produk_id,tb_produk.prod_brand_id,tb_produk.nama_produk,tb_produk.deskripsi,tb_produk.persen_diskon,tb_produk.harga,tb_produk.prod_kat_id,tb_produk.harga,
			tb_image_produk.produk_img_thumb,tb_image_produk.produk_img_url_small,tb_kat_produk.nama_kategori');
			$query = $this->db->get('tb_produk');
			return $query->result_array();
			
		elseif($query=='AllByBrand'):
			$this->db->where('prod_brand_id',$id_brand);
			$this->db->where('tersedia','Ya');
                        $this->db->where('tb_image_produk.look','1');
			$this->db->select('tb_produk.produk_id,tb_produk.prod_brand_id,tb_produk.nama_produk,tb_produk.deskripsi,tb_produk.persen_diskon,tb_produk.harga,tb_produk.prod_kat_id,tb_produk.harga,
			tb_image_produk.produk_img_thumb,tb_image_produk.produk_img_url_small');
                        $this->db->join('tb_image_produk','tb_image_produk.produk_id = tb_produk.produk_id');
			return $this->db->get('tb_produk')->result_array();
			
		elseif($query=='promo_home'):
			$this->db->where('tb_produk.tersedia','Ya');
			$this->db->where('tb_produk.promo','Ya');
			$this->db->where('tb_produk.promo_page',1);
			$this->db->where('tb_image_produk.look','1');
			$this->db->limit(2);
            $this->db->join('tb_image_produk','tb_image_produk.produk_id = tb_produk.produk_id');
			$this->db->select('tb_produk.produk_id,tb_produk.prod_brand_id,tb_produk.nama_produk,tb_produk.deskripsi_promo,tb_produk.persen_diskon,tb_produk.harga,tb_produk.prod_kat_id,tb_produk.harga,
			tb_image_produk.produk_img_thumb,tb_image_produk.produk_img_url_small');
			return $this->db->get('tb_produk')->result_array();
		elseif($query=='promo_produk_view'):
			$this->db->where('tb_produk.tersedia','Ya');
			$this->db->where('tb_produk.promo','Ya');
			$this->db->where('tb_produk.promo_page',2);
			$this->db->limit(2);
            $this->db->join('tb_image_produk','tb_image_produk.produk_id = tb_produk.produk_id');
			$this->db->select('tb_produk.produk_id,tb_produk.prod_brand_id,tb_produk.nama_produk,tb_produk.deskripsi_promo,tb_produk.persen_diskon,tb_produk.harga,tb_produk.prod_kat_id,tb_produk.harga,
			tb_image_produk.produk_img_thumb,tb_image_produk.produk_img_url_small');
			return $this->db->get('tb_produk')->result_array();
		endif;
	}
        

    function getProdukFilter($filter_name=FALSE,$filter_var=FALSE,$id_kat=FALSE,$id_brand=FALSE,$order_by=FALSE,$limit=FALSE,$offset=FALSE){
            if($filter_name == 'price_range'):
				if(!$id_kat): // FOR BRAND
					$f = explode('-', $filter_var);
					$this->db->limit($limit,$offset);
					$this->db->where('prod_brand_id',$id_brand);
					$this->db->where('tersedia','Ya');
					$this->db->where('tb_image_produk.look','1');
					if($filter_var != 500):
						$min = $f[0].'000';
						$max = $f[1].'000';
						$this->db->where("tb_produk.harga <= '$max' AND tb_produk.harga >= '$min'");
					else:
						$max = $filter_var.'000';
						$this->db->where("tb_produk.harga >= '$max.'");
					endif;
					$this->db->join('tb_brand','tb_brand.brand_id = tb_produk.prod_brand_id');
					$this->db->join('tb_image_produk','tb_image_produk.produk_id = tb_produk.produk_id');
					$this->db->select('tb_produk.produk_id,tb_produk.prod_brand_id,tb_produk.nama_produk,tb_produk.deskripsi,tb_produk.persen_diskon,tb_produk.harga,tb_produk.prod_kat_id,tb_produk.harga,
					tb_image_produk.produk_img_thumb,tb_image_produk.produk_img_url_small,tb_brand.nama_brand');
					if(!$order_by):
						$this->db->order_by('tb_produk.harga','ASC');
						return $this->db->get('tb_produk')->result_array();
					else:
						if($order_by == 'asc'):
							$this->db->order_by('tb_produk.harga','ASC');
							return $this->db->get('tb_produk')->result_array();
						elseif($order_by == 'desc'):
							 $this->db->order_by('tb_produk.harga','DESC');
							return $this->db->get('tb_produk')->result_array();
						endif;
					endif;
	
				else: // FOR KATEGORI
					$f = explode('-', $filter_var);
					$this->db->limit($limit,$offset);
					$this->db->where('prod_kat_id',$id_kat);
					$this->db->where('prod_brand_id',$id_brand);
					$this->db->where('tersedia','Ya');
					$this->db->where('tb_image_produk.look','1');
					
					
					if($filter_var != 500):
						$min = $f[0].'000';
						$max = $f[1].'000';
						$this->db->where("tb_produk.harga <= '$max' AND tb_produk.harga >= '$min'");
					else:
						$max = $filter_var.'000';
						$this->db->where("tb_produk.harga >= '$max.'");
					endif;
					
					$this->db->join('tb_kat_produk','tb_kat_produk.kategori_id = tb_produk.prod_kat_id');
					$this->db->join('tb_image_produk','tb_image_produk.produk_id = tb_produk.produk_id');
					$this->db->select('tb_produk.produk_id,tb_produk.prod_brand_id,tb_produk.nama_produk,tb_produk.deskripsi,tb_produk.persen_diskon,tb_produk.harga,tb_produk.prod_kat_id,
					tb_image_produk.produk_img_thumb,tb_image_produk.produk_img_url_small,tb_kat_produk.nama_kategori');
					if(!$order_by):
						$this->db->order_by('tb_produk.harga','ASC');
						return $this->db->get('tb_produk')->result_array();
					
					else:
					
						if($order_by == 'asc'):
							$this->db->order_by('tb_produk.harga','ASC');
							return $this->db->get('tb_produk')->result_array();
						elseif($order_by == 'desc'):
							 $this->db->order_by('tb_produk.harga','DESC');
							return $this->db->get('tb_produk')->result_array();
						endif;
					
					endif;
					
					
				endif;
       
            elseif($filter_name == 'shopping_program'):
				if($filter_var == 'promo') :
					$this->db->limit($limit,$offset);
					
					if($id_kat == TRUE):
						$this->db->where('prod_kat_id',$id_kat);
					endif;
					$this->db->where('prod_brand_id',$id_brand);
					$this->db->where('tersedia','Ya');
					$this->db->where('tb_image_produk.look','1');
					$this->db->where('tb_produk.persen_diskon !=','0');
					$this->db->where('tb_produk.promo','Ya');
					
					$this->db->join('tb_kat_produk','tb_kat_produk.kategori_id = tb_produk.prod_kat_id');
					$this->db->join('tb_image_produk','tb_image_produk.produk_id = tb_produk.produk_id');
					$this->db->select('tb_produk.produk_id,tb_produk.prod_brand_id,tb_produk.nama_produk,tb_produk.deskripsi,tb_produk.persen_diskon,tb_produk.harga,tb_produk.prod_kat_id,
					tb_image_produk.produk_img_thumb,tb_image_produk.produk_img_url_small,tb_kat_produk.nama_kategori');
					if(!$order_by):
						$this->db->order_by('tb_produk.produk_id','ASC');
						return $this->db->get('tb_produk')->result_array();
					else:
					
						if($order_by == 'asc'):
							$this->db->order_by('tb_produk.produk_id','ASC');
							return $this->db->get('tb_produk')->result_array();
						elseif($order_by == 'desc'):
							 $this->db->order_by('tb_produk.produk_id','DESC');
							return $this->db->get('tb_produk')->result_array();
						endif;
					
					endif;
					
				elseif ($filter_var == 'reguler'):
					$this->db->limit($limit,$offset);
					
					if($id_kat == TRUE):
						$this->db->where('prod_kat_id',$id_kat);
					endif;

					$this->db->where('prod_brand_id',$id_brand);
					$this->db->where('tersedia','Ya');
					$this->db->where('tb_image_produk.look','1');
					
					$this->db->where('tb_produk.persen_diskon','0');
					$this->db->where('tb_produk.promo','Tidak');
					
					$this->db->join('tb_kat_produk','tb_kat_produk.kategori_id = tb_produk.prod_kat_id');
					$this->db->join('tb_image_produk','tb_image_produk.produk_id = tb_produk.produk_id');
					$this->db->select('tb_produk.produk_id,tb_produk.prod_brand_id,tb_produk.nama_produk,tb_produk.deskripsi,tb_produk.persen_diskon,tb_produk.harga,tb_produk.prod_kat_id,
					tb_image_produk.produk_img_thumb,tb_image_produk.produk_img_url_small,tb_kat_produk.nama_kategori');
					if(!$order_by):
						$this->db->order_by('tb_produk.produk_id','ASC');
						return $this->db->get('tb_produk')->result_array();
					else:
					
						if($order_by == 'asc'):
							$this->db->order_by('tb_produk.produk_id','ASC');
							return $this->db->get('tb_produk')->result_array();
						elseif($order_by == 'desc'):
							 $this->db->order_by('tb_produk.produk_id','DESC');
							return $this->db->get('tb_produk')->result_array();
						endif;
					
					endif;
				endif;
            
            elseif($filter_name == 'collection'):
                if($filter_var == 'new') :
					$this->db->limit($limit,$offset);
					
					if($id_kat == TRUE):
						$this->db->where('prod_kat_id',$id_kat);
					endif;
					$this->db->where('prod_brand_id',$id_brand);
					$this->db->where('tersedia','Ya');
					$this->db->where('tb_image_produk.look','1');

					$this->db->join('tb_kat_produk','tb_kat_produk.kategori_id = tb_produk.prod_kat_id');
					$this->db->join('tb_image_produk','tb_image_produk.produk_id = tb_produk.produk_id');
					$this->db->select('tb_produk.produk_id,tb_produk.prod_brand_id,tb_produk.nama_produk,tb_produk.deskripsi,tb_produk.persen_diskon,tb_produk.harga,tb_produk.prod_kat_id,
					tb_image_produk.produk_img_thumb,tb_image_produk.produk_img_url_small,tb_kat_produk.nama_kategori');
					if(!$order_by):
						$this->db->order_by('tb_produk.produk_id','ASC');
						return $this->db->get('tb_produk')->result_array();
					else:
					
						if($order_by == 'asc'):
							$this->db->order_by('tb_produk.produk_id','ASC');
							return $this->db->get('tb_produk')->result_array();
						elseif($order_by == 'desc'):
							 $this->db->order_by('tb_produk.produk_id','DESC');
							return $this->db->get('tb_produk')->result_array();
						endif;
					
					endif;
					
				elseif ($filter_var == 'best'):
					$this->db->limit($limit,$offset);
					
					if($id_kat == TRUE):
						$this->db->where('prod_kat_id',$id_kat);
					endif;

					$this->db->where('prod_brand_id',$id_brand);
					$this->db->where('tersedia','Ya');
					$this->db->where('tb_image_produk.look','1');
					$this->db->join('tb_kat_produk','tb_kat_produk.kategori_id = tb_produk.prod_kat_id');
					$this->db->join('tb_image_produk','tb_image_produk.produk_id = tb_produk.produk_id');
					$this->db->join('tb_order_detail','tb_order_detail.produk_id = tb_produk.produk_id');
					$this->db->select('tb_produk.produk_id,tb_produk.prod_brand_id,tb_produk.nama_produk,tb_produk.deskripsi,tb_produk.persen_diskon,tb_produk.harga,tb_produk.prod_kat_id,
					tb_image_produk.produk_img_thumb,tb_image_produk.produk_img_url_small,tb_kat_produk.nama_kategori,
					Count(tb_order_detail.produk_id) AS qty_prod');
					if(!$order_by):
						$this->db->order_by('qty_prod','DESC');
						$this->db->group_by('tb_produk.produk_id');
						return $this->db->get('tb_produk')->result_array();
					else:
						if($order_by == 'asc'):
							$this->db->order_by('qty_prod','ASC');
							$this->db->group_by('tb_produk.produk_id');
							return $this->db->get('tb_produk')->result_array();
						elseif($order_by == 'desc'):
							 $this->db->order_by('qty_prod','DESC');
							 $this->db->group_by('tb_produk.produk_id');
							return $this->db->get('tb_produk')->result_array();
						endif;
					
					endif;
				endif;
            endif;
            
        }
        
        // GET KATEGORI JOIN PRODUK FOR POPEYE AT FRONT HOME
        
        function getKatProdHome($id_brand=FALSE,$level=FALSE,$look=FALSE,$caps=FALSE){
            $this->db->join('tb_kat_produk','tb_kat_produk.kategori_id = tb_produk.prod_kat_id');
            $this->db->join('tb_image_produk','tb_image_produk.produk_id = tb_produk.produk_id');
            $this->db->where('tb_produk.prod_brand_id',$id_brand);
            $this->db->where('tb_kat_produk.kat_level',$level);
            $this->db->where('tb_image_produk.look',$look);
            $this->db->where('tb_kat_produk.caps_posisi',$caps);
            $this->db->group_by('tb_kat_produk.kategori_id');
            $qr_men = $this->db->get('tb_produk');
            
            return $qr_men->result_array();
        }


        function getProdukKatVen($query=FALSE,$id_cat=FALSE,$id_ven=FALSE,$limit=FALSE,$offset=FALSE)
	{
		if($query=='VendorByKat'):
			$this->db->where('prod_kat_id',$id_cat);
			return  $this->db->get('tb_produk')->result_array();
		elseif($query=='KatVen'):
			$this->db->where('prod_kat_id',$id_cat);
			return  $this->db->get('tb_produk')->result_array();
		
		endif;
		
	}
	
	function getRelatedProducts($id_cat,$id_prod,$max,$min)
	{
		$query = $this->db->query("SELECT *
		FROM `tb_produk`
		WHERE (produk_id != $id_prod) 
		AND (prod_kat_id = $id_cat)
		AND (tersedia = 'Ya')
		AND (harga BETWEEN  $min AND $max)
		");
		return $query->result_array();
	
	}
	
	function getProdukReady($id){
	
		
		$this->db->where('tersedia','Ya');
		$this->db->where('produk_id',$id);
		$query = $this->db->get('tb_produk');
		if($query->num_rows() == 0){
			redirect('home');
		}
		else{
		return $query->row();
		}
	}
	
	function getProductById($id,$size_id){
		$this->db->where('tb_produk.produk_id',$id);
		$this->db->where('tb_size_produk.ms_size_id',$size_id);
        $this->db->join('tb_size_produk','tb_size_produk.produk_id = tb_produk.produk_id','left outer');
		$query = $this->db->get('tb_produk');
		return $query->row();
	}
	
	
	function getcariProduk($cari_prod=FALSE,$kat_prod=FALSE,$limit=FALSE,$offset=FALSE)
	{
		if (!$kat_prod):
			$this->db->like('nama_produk',$cari_prod); 
			$this->db->limit($limit,$offset);
			$query = $this->db->get('tb_produk');
			return $query->result_array();
		else:
			$this->db->like('nama_produk',$cari_prod); 
			$this->db->where('prod_kat_id',$kat_prod); 
			$this->db->limit($limit,$offset);
			$query = $this->db->get('tb_produk');
			return $query->result_array();
		endif;
	}


	function addProduk($data)
	{
		$this->db->insert('tb_produk',$data);
	}

	function editProduk($id,$data)
	{
		$this->db->where('produk_id',$id);
		$this->db->update('tb_produk',$data);
	}

	function deleteProduk($id){
		$this->db->where('produk_id',$id);
		$this->db->delete('tb_produk');
	}
	

	
	
	/// end of produk
	
	
	// kategori produk
	
	function getKatProduk($query=FALSE,$id=FALSE,$limit=FALSE,$offset=FALSE)
	{
		if (!$query):
			$this->db->where('kategori_id',$id);
			return $this->db->get('tb_kat_produk')->row();
		elseif($query=='all'):
			$this->db->limit($limit,$offset);
			$this->db->order_by('brand_id','asc');
			$this->db->order_by('parent_kat_id','asc');
			$this->db->order_by('kat_level','asc');
			return $this->db->get('tb_kat_produk')->result_array();
		elseif($query=='brand'):
			$this->db->limit($limit,$offset);
			$this->db->where('brand_id',$id);
			$this->db->order_by('parent_kat_id','asc');
			$this->db->order_by('kat_level','asc');
			return $this->db->get('tb_kat_produk')->result_array();
		endif;
	}

	function addKatProduk($data)
	{
		$this->db->insert('tb_kat_produk',$data);
	}

	function editKatProduk($id,$data)
	{
		$this->db->where('kategori_id',$id);
		$this->db->update('tb_kat_produk',$data);
	}

	function deleteKatProduk($id){
		$this->db->where('kategori_id',$id);
		$this->db->delete('tb_kat_produk');
	}
	
	// end of kategori produk
	
	// merk
	
	function getBrands($query=FALSE,$id=FALSE,$limit=FALSE,$offset=FALSE)
	{
		if (!$query):
			$this->db->where('brand_id',$id);
			return $this->db->get('tb_brand')->row();
		elseif($query=='all'):
			$this->db->limit($limit,$offset);
			$this->db->order_by('nama_brand','asc');
			return $this->db->get('tb_brand')->result_array();
		endif;
	}

	function addBrands($data)
	{
		$this->db->insert('tb_brands',$data);
	}

	function editBrands($id,$data)
	{
		$this->db->where('brands_id',$id);
		$this->db->update('tb_brands',$data);
	}

	function deleteBrands($id){
		$this->db->where('brands_id',$id);
		$this->db->delete('tb_brands');
	}
	// end of vendor
	// review
	
	function getReview($query=FALSE,$rev_id=FALSE,$prod_id=FALSE,$limit=FALSE,$offset=FALSE)
	{
		if(!$query):
			$this->db->join('tb_produk','tb_produk.produk_id = tb_review.rev_prod_id');
			$this->db->where('review_id',$rev_id);
			return $this->db->get('tb_review')->row();
		elseif($query=='by_produk'):
			$this->db->join('tb_produk','tb_produk.produk_id = tb_review.rev_prod_id');
			$this->db->where('rev_prod_id',$prod_id);
			$this->db->where('status','approve');
			$this->db->limit($limit,$offset);
			$this->db->order_by('review_id','desc');
			return $this->db->get('tb_review')->result_array();
		elseif($query=='all'):
			$this->db->join('tb_produk','tb_produk.produk_id = tb_review.rev_prod_id');
			$this->db->limit($limit,$offset);
			$this->db->order_by('review_id','desc');
			return $this->db->get('tb_review')->result_array();
		endif;
	}

	function addReview($data)
	{
		$this->db->insert('tb_review',$data);
	}

	function editReview($id,$data)
	{
		$this->db->where('review_id',$id);
		$this->db->update('tb_review',$data);
	}

	function deleteReview($id){
		$this->db->where('review_id',$id);
		$this->db->delete('tb_review');
	}
	
}

